package rdd.split;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import java.util.Arrays;
import java.util.List;

//1.使用saveAsTextFile查看分区情况
//2.分区数确定
//  ①环境核数，通过loacl[]确定
//  ②设置spark.default.parallelism默认值
//  ③通过通过parallelize和textFile手动添加第二个参数确定
public class Spark26_Split_1 {
    public static void main(String[] args) {
        //这里示范对接内存（集合），通过手动进行分区
        final SparkConf conf = new SparkConf();
        conf.setMaster("local");                                                          //默认单线程，只有一个核，所以分区也只有1个
        conf.setAppName("spark");

        final JavaSparkContext jsc = new JavaSparkContext(conf);
        final List<String> names = Arrays.asList("zhangsan","lsi","wangwu");
        //final JavaSparkContext jsc1 = new JavaSparkContext("local","spark");        //可以不传入spark配置对象，可以直接当作参数输入
        final JavaRDD<String> rdd = jsc.parallelize(names,2);               //第二个参数是手动设定分区
        rdd.saveAsTextFile("output1");
        jsc.close();
    }
}
